const fs = require("fs")
const path = require('path')
const filename = path.resolve(__dirname, 'write.txt')

const ws = fs.createWriteStream(filename, {
    // flags // 操作文件的方式 添加 覆盖 
    // encoding // 编码
    // start // 起始字节 
    // highWaterMark // 每次最多写入的字节数 与编码无关
});

// const flog = ws.write('ddd')

// 处理背压问题

// for (let i = 0; i < 1024 * 1024 * 10; i++) {
//     ws.write('a')
// }

// 一直写,直到上限,或无法再直接写入
let i = 0
function write() {
    var flag = true
    while (i < 1024 * 1024 * 10 && flag) {
        flag = ws.write('a')
        i++
    }
    console.log('阻塞')
}
ws.on('drain', function () {
    // 队列已经处理完成
    console.log('队列清空，重新写入')
    write()
})
write()